package br.gov.ba.mam.banco;

import java.util.Collection;
import java.util.List;

import br.gov.ba.mam.beans.Artista;
import br.gov.ba.mam.beans.Categoria;

/**
 * Contrato para garantir que o banco realize todas as operacoes de pessistencia
 * necessarias para a aplicacao e separar a camada de persistencia e interface.
 * 
 * @author cassio
 */
public interface IF_Persistencia {

	/*
	 * METODOS PARA ARTISTA
	 */
	
	/** Metodo para listar artitas */
	public List<Artista> getListaArtistas();
	
	/** Adiciona um novo artista */
	public void addArtista(Artista artista) throws Exception;
	
	/** Delera um grupo de artitas com os valores definidos no artista passado como parametro */
	public void delArtista(Integer numeroInscricao) throws Exception;
	
	/*
	 * METODOS PARA CATEGORIA
	 */
	
	/** Metodo para listar todas as categorias. */
	public List<Categoria> getListaCategorias();

	/** Retorna uma categoria */
	public Categoria getCategoria(Integer codigo);
	
	/** Adiciona uma nova categoria */
	public void addCategoria(Categoria cat) throws Exception;

	/** Deleta uma categoria */
	public void delCategoria(Integer codigo) throws Exception;
	
	/** */
	public void addCategorias(Collection<Categoria> values);

	/*
	 * DADOS SINTETIZADOS
	 */

	/** Retorna o numetro total de artistas cadastrados */
	public Integer getNumeroTotalArtista();
}